package com.mazaiting.scheduler.runner;

import com.mazaiting.scheduler.domain.entity.SysQuartzJob;
import com.mazaiting.scheduler.manager.QuartzManager;
import com.mazaiting.scheduler.service.ISysQuartzJobService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 定义任务启动后自动运行
 *
 * @author mazaiting
 * @create_time 2022/4/5 13:08
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class JobRunner {
    /**
     * 定时任务服务
     */
    private final ISysQuartzJobService sysQuartzJobService;
    /**
     * 定时任务管理者
     */
    private final QuartzManager quartzManager;

    /**
     * 项目启动时重新激活启用的定时任务
     */
    public void initialize() {
        // 查询未暂停的所有任务列表
        List<SysQuartzJob> quartzJobs = sysQuartzJobService.queryByIsPause(false);
        quartzJobs.forEach(quartzManager::addJob);
    }
}
